iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
Software Development

從零開始學 Python系列 第 24

Day 24 – 綜合練習:模組 + OOP + 小系統

  • 分享至 

  • xImage
  •  

今天的學習重點

  • 綜合應用模組(import、自訂模組)
  • 使用 OOP(class 與 object)設計程式架構
  • 結合前面學過的功能:條件判斷、迴圈、字串處理

小專案:任務清單系統(Todo List)

這是一個簡單的文字版任務清單系統,功能包含:

  1. 新增任務
  2. 查看所有任務
  3. 移除任務
  4. 離開系統

程式設計步驟

一、建立模組(todo_module.py)

# todo_module.py
class TodoList:
    def __init__(self):
        self.tasks = []  # 儲存任務的清單

    def add_task(self, task):
        """新增任務"""
        self.tasks.append(task)

    def show_tasks(self):
        """列出所有任務"""
        if not self.tasks:
            print("目前沒有任務。")
        else:
            print("\n--- 任務列表 ---")
            for i, task in enumerate(self.tasks, 1):
                print(f"{i}. {task}")

    def remove_task(self, index):
        """刪除任務"""
        if 0 <= index < len(self.tasks):
            removed = self.tasks.pop(index)
            print(f"已移除任務:{removed}")
        else:
            print("索引無效。")

二、主程式(main.py)

# main.py
from todo_module import TodoList

todo = TodoList()

while True:
    print("\n=== 任務清單系統 ===")
    print("1. 新增任務")
    print("2. 查看任務")
    print("3. 移除任務")
    print("4. 離開")

    choice = input("請選擇功能:")

    if choice == "1":
        task = input("輸入任務內容:")
        todo.add_task(task)

    elif choice == "2":
        todo.show_tasks()

    elif choice == "3":
        todo.show_tasks()
        index = int(input("輸入要刪除的任務編號:")) - 1
        todo.remove_task(index)

    elif choice == "4":
        print("系統結束,再見!")
        break

    else:
        print("輸入錯誤,請重新選擇。")

執行範例
螢幕擷取畫面 2025-08-26 102305

學習心得

今天做了一個簡單的 Todo List 系統,把模組、OOP 和 基本語法(條件判斷、迴圈、字串處理) 串在一起。
一開始執行程式時出現錯誤:

ModuleNotFoundError: No module named 'todo_module'

才發現必須把 todo_module.py 和 main.py 放在同一個資料夾裡。如果不在同一個資料夾,Python 會找不到這個模組。
例如:

my_project/
│── main.py
│── todo_module.py

另一個問題是模組名稱不一致。我原本有兩個檔案:main.py 和 TodoList.py。
但是在 main.py 中寫的是:

from todo_module import TodoList

這樣會去找 todo_module.py,而不是 TodoList.py,所以會報錯。最後我將檔名TodoList.py 改成 todo_module.py(跟 import 寫的一樣)。
另一種方法是保持檔名 TodoList.py,然後在 main.py 裡改成

from TodoList import TodoList

明天我要學習 requests 模組存取 API,讓程式能夠跟網路上的服務互動!


上一篇
Day 23 – 物件導向進階:繼承與多型
下一篇
Day 25 – 使用 requests 模組存取 API
系列文
從零開始學 Python30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言